// Replace this section below with the button you want to simulate.
// ===============================================================================
// ============ THIS IS CHERRY MX CLEAR ==========
// ============ Set the travel range according to your simulation target =========
int travel_range = 4000;

// ============= Button Data ==============
float button_v0_Down[] = {10.000,22.302,31.376,35.132,36.210,36.760,37.436,38.170,38.634,39.230,40.102,40.972,42.562,44.734,47.060,50.064,51.824,53.906,56.186,57.228,58.124,59.470,60.322,61.036,62.452,62.848,64.176,64.390,64.638,64.848,63.826,63.226,62.514,62.218,61.132,59.672,59.022,57.250,55.564,52.612,51.780,52.040,52.028,53.206,53.780,55.122,58.868,62.120,64.756,66.070,66.730,67.728,68.428,69.032,69.786,70.528,71.254,72.258,72.802,73.644,74.222,75.048,75.610,76.094,76.874,77.754,78.490,79.012,79.922,80.628,81.062,81.898,82.880,83.878,85.254,85.996,86.206,87.196,88.104,88.776,89.798};
float button_v0_Up[] =   {10.000,11.454,10.644,16.906,19.320,20.638,20.992,23.238,24.160,24.894,25.952,26.826,28.834,33.226,36.068,38.758,41.438,43.458,44.414,45.322,46.346,47.192,47.838,48.540,48.842,49.618,49.724,49.810,49.874,48.954,48.666,47.408,46.568,45.312,44.656,41.720,38.296,37.284,34.488,31.710,31.088,32.658,33.702,35.874,40.130,46.348,51.524,57.134,61.244,62.578,63.388,63.964,64.828,65.078,65.778,66.698,67.036,67.750,68.412,69.218,69.896,70.458,71.140,71.866,72.664,73.082,74.018,74.422,74.950,75.646,76.350,76.732,77.408,77.888,78.130,78.760,79.600,80.102,80.908,81.890,81.890};
float button_v1_Down[] = {10.000,17.826,23.833,27.272,29.380,31.223,33.130,35.080,36.981,39.138,41.273,42.762,44.221,45.806,47.549,49.742,51.365,53.329,55.532,56.996,58.144,59.248,59.940,60.540,61.463,61.739,62.328,62.267,62.082,61.622,60.182,58.828,57.651,56.784,55.508,54.005,52.241,48.992,45.955,43.925,44.968,48.372,53.194,58.775,62.264,63.974,65.066,64.731,64.191,64.094,64.429,65.341,66.394,67.203,68.031,68.881,69.804,70.871,71.353,71.858,72.368,73.228,74.115,74.998,75.929,76.867,77.803,78.562,79.512,80.509,81.279,82.041,82.869,83.727,84.821,85.728,86.225,86.866,87.355,87.697,88.208};
float button_v1_Up[] =   {10.000,11.358,11.506,15.226,17.023,18.273,19.040,20.737,21.696,22.404,23.175,23.944,25.361,28.023,30.349,33.005,35.583,37.744,39.526,41.284,42.988,44.334,45.305,46.206,46.723,47.068,46.863,46.680,46.499,45.892,45.651,44.671,43.508,42.058,40.904,38.671,36.404,35.154,32.689,30.347,29.322,29.616,30.181,31.972,35.468,40.859,46.335,51.433,54.752,56.147,57.183,58.064,58.937,59.230,59.669,60.339,60.696,61.111,61.537,62.198,62.928,63.538,64.165,64.950,65.763,66.364,67.301,68.043,68.852,69.648,70.369,70.990,71.972,73.024,74.054,75.505,77.270,78.644,79.550,80.141,80.148};
float button_v2_Down[] = {11.340,13.350,16.290,19.412,22.549,25.686,28.825,31.990,35.329,39.046,42.445,44.552,45.880,46.877,48.037,49.420,50.907,52.752,54.878,56.765,58.163,59.026,59.558,60.044,60.474,60.629,60.480,60.143,59.525,58.396,56.538,54.431,52.789,51.349,49.885,48.339,45.460,40.735,36.346,35.238,38.156,44.704,54.360,64.343,70.747,72.825,71.264,67.342,63.625,62.118,62.128,62.955,64.361,65.374,66.277,67.233,68.354,69.485,69.905,70.073,70.514,71.408,72.620,73.902,74.985,75.980,77.116,78.112,79.102,80.390,81.497,82.183,82.858,83.575,84.387,85.460,86.243,86.536,86.606,86.617,86.617};
float button_v2_Up[] =   {10.505,11.262,12.369,13.545,14.726,15.908,17.087,18.236,19.232,19.915,20.398,21.063,21.887,22.819,24.629,27.253,29.727,32.030,34.639,37.245,39.630,41.477,42.771,43.873,44.604,44.517,44.002,43.550,43.125,42.829,42.636,41.933,40.448,38.805,37.152,35.622,34.513,33.025,30.890,28.984,27.557,26.573,26.661,28.070,30.806,35.371,41.146,45.733,48.261,49.716,50.978,52.165,53.046,53.381,53.559,53.980,54.356,54.472,54.661,55.178,55.961,56.619,57.189,58.034,58.862,59.646,60.584,61.665,62.753,63.651,64.389,65.249,66.537,68.159,69.978,72.249,74.940,77.185,78.192,78.391,78.407};
float button_v3_Down[] = {11.094,12.736,15.136,17.686,20.248,22.810,25.373,27.959,30.718,33.992,37.621,40.960,44.133,47.344,50.189,51.688,52.272,53.201,54.714,56.147,57.191,57.881,58.445,58.999,59.343,59.407,59.371,59.218,58.804,58.208,57.316,56.352,56.548,57.775,57.385,54.757,50.496,43.814,37.248,34.669,35.780,39.287,44.472,49.496,52.254,52.686,51.669,50.891,51.797,54.805,59.538,65.201,69.910,71.698,71.621,71.748,72.687,73.325,72.836,72.262,72.331,72.922,73.589,74.175,75.193,76.335,77.127,77.733,78.439,79.402,80.286,80.915,81.552,82.038,83.064,84.853,86.487,87.669,88.237,88.358,88.367};
float button_v3_Up[] =   {10.394,10.986,11.850,12.768,13.691,14.614,15.533,16.424,17.227,18.159,19.910,22.834,26.148,28.938,31.383,33.496,35.111,36.495,37.904,39.314,40.517,41.092,41.151,40.981,40.567,39.724,38.818,37.928,36.783,35.811,34.782,33.456,32.183,31.055,30.187,29.976,30.113,29.586,28.324,27.119,26.305,25.768,25.852,27.033,29.836,34.076,38.389,42.192,46.141,49.638,51.945,53.258,54.222,55.014,55.911,56.890,57.564,57.802,57.980,58.495,59.453,60.465,61.430,62.683,64.014,65.278,66.479,67.584,68.541,69.354,69.982,70.460,70.960,71.665,72.825,74.960,78.434,82.012,83.799,84.169,84.199};
float button_v4_Down[]=  {10.848,12.122,13.983,15.961,17.947,19.934,21.922,23.929,26.106,28.938,32.798,37.369,42.386,47.810,52.340,53.956,53.638,53.650,54.550,55.529,56.219,56.736,57.332,57.954,58.211,58.186,58.263,58.294,58.083,58.020,58.093,58.273,60.307,64.201,64.885,61.175,55.532,46.892,38.150,34.100,33.404,33.870,34.585,34.650,33.760,32.547,32.075,34.440,39.968,47.492,56.948,67.446,75.459,78.023,76.965,76.262,77.020,77.165,75.767,74.451,74.148,74.435,74.557,74.448,75.401,76.691,77.139,77.354,77.776,78.414,79.075,79.647,80.246,80.502,81.740,84.246,86.732,88.803,89.869,90.098,90.117};
float button_v4_Up[]=    {10.283,10.709,11.331,11.991,12.655,13.319,13.979,14.611,15.223,16.403,19.421,24.606,30.410,35.058,38.136,39.739,40.495,40.961,41.169,41.384,41.403,40.707,39.531,38.089,36.530,34.931,33.634,32.306,30.441,28.792,26.927,24.978,23.917,23.305,23.222,24.329,25.714,26.147,25.757,25.253,25.054,24.964,25.043,25.996,28.866,32.780,35.631,38.652,44.020,49.559,52.913,54.352,55.398,56.647,58.263,59.800,60.771,61.132,61.299,61.813,62.945,64.312,65.672,67.331,69.165,70.910,72.374,73.503,74.330,75.057,75.576,75.671,75.383,75.171,75.671,77.672,81.927,86.839,89.407,89.948,89.991};
float button_v5_Down[] = {10.428,11.070,12.009,13.007,14.008,15.011,16.023,17.157,18.938,22.230,27.171,33.034,39.752,47.381,54.052,57.912,59.408,59.867,59.816,59.091,58.144,57.465,56.780,55.951,55.111,54.593,54.685,55.162,55.895,57.330,59.084,60.005,61.282,63.605,63.898,61.496,57.766,51.715,43.623,36.489,31.457,28.630,28.157,28.822,30.082,32.212,35.293,40.812,48.896,57.786,66.575,75.062,80.913,81.678,78.801,75.933,73.570,70.711,68.096,67.256,67.760,69.330,71.346,72.789,74.090,75.649,77.149,77.952,77.921,78.236,78.598,78.864,79.468,79.974,80.903,82.445,83.791,85.092,86.708,88.539,89.563};
float button_v5_Up[] =   {10.282,10.707,11.326,11.985,12.646,13.308,13.968,14.633,15.494,17.353,20.550,24.803,30.263,35.745,40.927,45.008,47.420,49.237,51.537,53.060,51.887,48.904,46.827,45.058,42.559,39.173,35.885,33.261,31.340,29.754,27.627,25.637,24.334,23.576,23.122,22.593,22.133,21.925,22.056,22.388,22.331,22.109,22.434,23.111,23.738,24.849,26.951,31.264,38.059,44.382,48.882,51.001,52.271,53.633,54.293,54.778,55.742,57.412,59.614,61.367,62.696,63.385,63.353,63.561,64.229,65.025,65.846,65.748,64.579,63.570,63.462,63.773,64.247,65.639,69.369,75.969,85.369,94.809,99.575,100.570,100.650};
float button_v6_Down[] = {10.007,10.019,10.035,10.053,10.070,10.088,10.124,10.385,11.770,15.522,21.544,28.698,37.118,46.952,55.763,61.867,65.178,66.085,65.082,62.652,60.069,58.195,56.228,53.947,52.012,51.001,51.108,52.031,53.708,56.639,60.075,61.737,62.256,63.008,62.911,61.818,59.999,56.538,49.097,38.878,29.510,23.390,21.729,22.993,26.404,31.877,38.511,47.185,57.824,68.080,76.201,82.678,86.368,85.333,80.637,75.603,70.119,64.257,60.425,60.061,61.373,64.225,68.134,71.130,72.779,74.607,77.160,78.549,78.066,78.057,78.121,78.080,78.689,79.445,80.066,80.643,80.850,81.381,83.547,86.980,89.009};
float button_v6_Up[] =   {10.282,10.704,11.322,11.978,12.638,13.297,13.957,14.654,15.765,18.303,21.679,24.999,30.116,36.432,43.717,50.277,54.345,57.513,61.904,64.736,62.371,57.100,54.123,52.027,48.588,43.416,38.136,34.217,32.238,30.716,28.328,26.296,24.751,23.847,23.022,20.858,18.553,17.703,18.355,19.523,19.609,19.254,19.826,20.225,18.609,16.917,18.272,23.877,32.097,39.204,44.850,47.650,49.144,50.620,50.323,49.756,50.714,53.691,57.928,60.922,62.447,62.457,61.034,59.790,59.293,59.139,59.318,57.993,54.828,52.082,51.348,51.875,53.111,56.106,63.066,74.265,88.811,102.778,109.743,111.193,111.309};
float button_v7_Down[] = {10.003,10.009,10.018,10.027,10.035,10.044,10.062,10.197,10.944,13.137,17.023,22.046,28.319,36.286,44.673,52.118,58.033,62.378,65.002,66.114,66.663,67.082,66.564,64.840,62.785,61.254,60.279,59.539,59.139,59.431,60.130,60.075,59.407,58.925,58.186,56.948,55.276,52.614,47.627,41.191,35.368,31.242,29.122,28.103,28.168,29.695,32.764,38.410,46.312,54.700,62.546,69.893,75.644,78.967,80.564,81.196,80.052,77.213,74.770,74.297,74.918,76.554,78.865,80.201,80.573,80.985,81.725,82.594,83.311,84.118,84.659,84.550,84.229,84.296,84.645,84.851,84.594,84.703,86.319,89.037,90.654};
float button_v7_Up[] =   {10.643,11.608,13.020,14.519,16.026,17.532,19.071,20.974,24.337,29.291,33.814,37.819,42.204,46.303,50.876,56.466,60.809,63.268,66.121,68.519,67.716,64.483,61.945,60.273,58.716,55.201,49.829,45.001,40.696,36.724,33.090,29.442,25.559,22.509,20.492,18.415,16.212,14.660,14.436,15.194,15.917,16.976,19.521,23.552,27.520,30.600,33.877,37.377,42.334,47.439,51.378,53.347,53.102,52.029,50.652,49.524,50.276,53.799,58.729,62.795,65.617,67.012,67.725,68.463,68.897,69.586,71.227,72.188,71.311,70.772,72.209,74.614,76.974,80.296,86.066,94.800,106.540,118.137,120.000,120.000,120.000};
float button_v8_Down[] = {10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.008,10.119,10.753,12.503,15.394,19.519,25.621,33.583,42.370,50.888,58.672,64.922,69.575,73.257,75.969,76.899,75.734,73.558,71.506,69.451,67.047,64.571,62.222,60.184,58.412,56.557,54.843,53.461,52.078,50.554,48.691,46.156,43.504,41.226,39.095,36.515,33.214,29.931,27.513,27.017,29.634,34.800,41.320,48.892,57.108,64.920,72.601,80.491,86.789,89.984,90.169,89.116,88.534,88.464,88.883,89.596,89.273,88.368,87.363,86.291,86.639,88.555,90.179,91.198,91.020,89.769,89.148,89.224,89.059,88.338,88.025,89.090,91.095,92.300};
float button_v8_Up[] =   {11.005,12.513,14.718,17.060,19.413,21.768,24.184,27.293,32.909,40.278,45.949,50.638,54.293,56.175,58.035,62.655,67.273,69.023,70.338,72.303,73.060,71.866,69.767,68.519,68.844,66.986,61.521,55.785,49.154,42.733,37.851,32.589,26.368,21.170,17.963,15.972,13.872,11.617,10.516,10.866,12.225,14.698,19.217,26.879,36.431,44.283,49.482,50.877,52.570,55.675,57.906,59.044,57.061,53.439,50.981,49.292,49.838,53.907,59.530,64.668,68.786,71.567,74.417,77.137,78.500,80.033,83.136,86.382,87.795,89.463,93.071,97.353,100.837,104.486,109.065,115.336,120.000,120.000,120.000,120.000,120.000};
float button_v9_Down[] = {10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.719,14.956,22.493,32.621,43.743,54.965,64.842,73.037,79.851,84.856,87.234,86.627,84.331,81.758,78.622,74.555,70.002,65.013,60.238,56.749,53.708,50.761,48.736,47.208,45.832,44.768,44.685,45.817,47.084,46.947,43.908,38.325,31.695,25.331,21.270,20.858,23.288,27.940,35.238,44.323,54.196,66.235,80.418,92.382,99.916,103.125,103.462,102.771,102.010,101.212,100.327,98.344,96.162,93.741,90.856,90.684,93.800,96.240,97.736,97.490,95.309,93.999,93.803,93.267,92.082,91.347,91.862,93.153,93.945};
float button_v9_Up[] =   {11.367,13.418,16.416,19.601,22.800,26.004,29.297,33.612,41.481,51.265,58.084,63.457,66.382,66.046,65.194,68.844,73.737,74.778,74.555,76.087,78.404,79.249,77.589,76.765,78.972,78.771,73.213,66.569,57.612,48.741,42.612,35.736,27.176,19.832,15.434,13.529,11.532,10.000,10.000,10.000,10.000,12.420,18.912,30.206,45.342,57.966,65.087,64.377,62.806,63.910,64.434,64.741,61.020,54.849,51.310,49.060,49.400,54.015,60.331,66.541,71.956,76.122,81.109,85.811,88.103,90.480,95.045,100.577,104.279,108.153,113.933,120.000,120.000,120.000,120.000,120.000,120.000,120.000,120.000,120.000,120.000};

// ============ Vibration settings ============
bool if_vib = true;
int vib_point_1 = 2000;
int vib_point_2 = 2300;

int vib_file0 = 16;
int vib_file1 = 16;
int vib_file2 = 14;
int vib_file3 = 14;
int vib_file4 = 2;
int vib_file5 = 2;
int vib_file6 = 2;
int vib_file7 = 2;
int vib_file8 = 3;
int vib_file9 = 3;

// ===============================================================================
// Replace the section above